Jetfire Code: Location
// L O C A T I O N W O R K F L O W
//===================================================================================
// Location.txt
//===================================================================================
// Copyright (C) 2007 TrackerRealm Corporation
// This file is part of Jetfire. http://Jetfire.ca
//
// Jetfire is open software: you can redistribute it and/or modify it under the terms
// of the GNU General Public License as published by the Free Software Foundation,
// version 3 of the License.
//
// Jetfire is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along with Jetfire.
// If not, see http://www.gnu.org/licenses.
// REMOVAL OF THIS NOTICE IS VIOLATION OF THE COPYRIGHT.
//===================================================================================
//
// DisplayName = "Location";
// ToolTip = "This workflow is the location where work is done.";
namespace JetfireContacts
{
public workflow Location
{
// C O N S T R U C T O R - Instantiate the Location
public Location()
{
Subject = " New Location";
enterstate Start();
}
public Location(string subject)
{
Subject = subject;
enterstate Start();
}
public Location(string subject, string toolTip)
{
Subject = subject;
ToolTip = toolTip;
enterstate Start();
}
public Location(string name, string subject, string toolTip)
{
name = name;
Subject = subject;
ToolTip = toolTip;
enterstate Start();
}
// P R O P E R T I E S
public string Name
{
get;
set;
}
public OrganizationUnit OrgUnit
{
get;
set;
}
public TimeZone TimeZone
{
get;
set;
}
public List Addresses
{
get;
private set;
}
public List EmailAddresses
{
get;
private set;
}
public List PhoneNumbers
{
get;
private set;
}
// Static Properties
private static Location none;
public static Location None
{
get { return none; }
set { none = value; }
}
// S T A T E S
// State Transition Command Comment
// Instantiate -> Start New The configuration object enters the New state when instantiated
// Start -> Active Approve The user approves the data
// Active -> Inactive Deactivate The user marks the data as inactive.
// Inactive -> Active Activate The user marks the data as active.
//
// S T A T E M E T H O D S
public Start()
{
}
public Active()
{
}
public Inactive()
{
}
// C O M M A N D S
// The Save command can be used in the Start and Editing states
// The Approve command can be used in the Pending state by the Administrator
public void Approve() : states(Start)
{
enterstate Active();
}
// The Inactive command is used to edit the data
public void Deactivate() : states(Active)
{
enterstate Inactive();
}
// The Active command is used to edit the data
public void Activate() : states(Inactive)
{
enterstate Active();
}
}
}
See Also
Jetfire Code Library
Jetfire Contacts Code Library